use Tesoreria
GO
-- --------------------------------
-- - usp_Bancos_SEL_x_codBanco ---
-- --------------------------------
if exists(select * from sysobjects where name = 'usp_Bancos_SEL_x_codBanco' and type = 'P')
	drop procedure usp_Bancos_SEL_x_codBanco
GO
create procedure dbo.usp_Bancos_SEL_x_codBanco
(
	@CodBanco int
)
as

select
	 CodBanco
	,NombreBanco
	,Estado
from
	Banco
where
	CodBanco = @CodBanco
	and Estado = 'A'
GO

-- -------------------------
-- - usp_Bancos_SEL ---
-- -------------------------
if exists(select * from sysobjects where name = 'usp_Bancos_SEL' and type = 'P')
	drop procedure usp_Bancos_SEL
GO
create procedure dbo.usp_Bancos_SEL
as

select
	 CodBanco
	,NombreBanco
	,Estado
from
	Banco
where
	Estado = 'A'
GO

-- --------------------------------
-- - usp_Moneda_SEL_x_codMoneda ---
-- --------------------------------
if exists(select * from sysobjects where name = 'usp_Moneda_SEL_x_codMoneda' and type = 'P')
	drop procedure usp_Moneda_SEL_x_codMoneda
GO
create procedure dbo.usp_Moneda_SEL_x_codMoneda
(
	@CodMoneda int
)
as

select
	 CodMoneda
	,NombreMoneda
from
	Moneda
where
	CodMoneda = @CodMoneda
GO

-- ---------------------
-- - usp_Monedas_SEL ---
-- ---------------------
if exists(select * from sysobjects where name = 'usp_Monedas_SEL' and type = 'P')
	drop procedure usp_Monedas_SEL
GO
create procedure dbo.usp_Monedas_SEL
as

select
	 CodMoneda
	,NombreMoneda
from
	Moneda
GO

-- ------------------------------------------
-- - usp_PlanCuentas_SEL_x_CuentaContable ---
-- ------------------------------------------
if exists(select * from sysobjects where name = 'usp_PlanCuentas_SEL_x_CuentaContable' and type = 'P')
	drop procedure usp_PlanCuentas_SEL_x_CuentaContable
GO
create procedure dbo.usp_PlanCuentas_SEL_x_CuentaContable
(
	@CuentaContable int
)
as

select
	 CuentaContable
	,CodigoMoneda
	,NombreCuenta
from
	PlanCuentas
where
	CuentaContable = @CuentaContable
GO

-- -------------------------
-- - usp_PlanCuentas_SEL ---
-- -------------------------
if exists(select * from sysobjects where name = 'usp_PlanCuentas_SEL' and type = 'P')
	drop procedure usp_PlanCuentas_SEL
GO
create procedure dbo.usp_PlanCuentas_SEL
as

select
	 CuentaContable
	,CodigoMoneda
	,NombreCuenta
from
	PlanCuentas
GO

-- ---------------------------------------
-- - usp_CuentaBancaria_SEL_x_codBanco ---
-- ---------------------------------------
if exists(select * from sysobjects where name = 'usp_CuentaBancaria_SEL_x_codBanco' and type = 'P')
	drop procedure usp_CuentaBancaria_SEL_x_codBanco
GO
create procedure dbo.usp_CuentaBancaria_SEL_x_codBanco
(
	@CodBanco int
)
as

select
	 CodBanco
	,CodCuentaBancaria
	,NombreCuentaBancaria
	,NumCuentaBancaria
	,CuentaContable
	,CodMoneda
	,Estado
from
	CuentaBancaria
where
	CodBanco = @CodBanco
GO

-- ------------------------------------------------
-- - usp_TiposMovimientoBancario_SEL_x_codBanco ---
-- ------------------------------------------------
if exists(select * from sysobjects where name = 'usp_TiposMovimientoBancario_SEL_x_codBanco' and type = 'P')
	drop procedure usp_TiposMovimientoBancario_SEL_x_codBanco
GO
create procedure dbo.usp_TiposMovimientoBancario_SEL_x_codBanco
(
	@CodBanco int
)
as

select
	 CodBanco
	,CodTipoMovimientoBancario
	,NombreMovimientoBancario
	,CodTipoMovimientoContable
	,ContraCuentaContable
	,TipoDocumentoContable
	,Estado
from
	dbo.TiposMovimientoBancario
where
	CodBanco = @CodBanco
GO

-- --------------------------------------------------------------------------
-- - usp_TiposMovimientoBancario_SEL_x_codBanco_codTipoMovimientoBancario ---
-- --------------------------------------------------------------------------
if exists(select * from sysobjects where name = 'usp_TiposMovimientoBancario_SEL_x_codBanco_codTipoMovimientoBancario' and type = 'P')
	drop procedure usp_TiposMovimientoBancario_SEL_x_codBanco_codTipoMovimientoBancario
GO
create procedure dbo.usp_TiposMovimientoBancario_SEL_x_codBanco_codTipoMovimientoBancario
(
	 @CodBanco int
	,@CodTipoMovimientoBancario int
)
as

select
	 CodBanco
	,CodTipoMovimientoBancario
	,NombreMovimientoBancario
	,CodTipoMovimientoContable
	,ContraCuentaContable
	,TipoDocumentoContable
	,Estado
from
	dbo.TiposMovimientoBancario
where
	CodBanco = @CodBanco
	and CodTipoMovimientoBancario = @CodTipoMovimientoBancario
GO
-- ------------------------------------------------------------------------
-- - usp_CriteriosConciliacion_SEL_x_CodBanco_CodTipoMovimientoBancario ---
-- ------------------------------------------------------------------------
if exists(select * from sysobjects where name = 'usp_CriteriosConciliacion_SEL_x_CodBanco_CodTipoMovimientoBancario' and type = 'P')
	drop procedure usp_CriteriosConciliacion_SEL_x_CodBanco_CodTipoMovimientoBancario
GO
create procedure dbo.usp_CriteriosConciliacion_SEL_x_CodBanco_CodTipoMovimientoBancario
(
	 @CodBanco int
	,@CodTipoMovimientoBancario int
)
as

select
	 CodBanco
	,CodTipoMovimientoBancario
	,Orden
	,CriterioConciliacion
	,Estado
from
	dbo.CriteriosConciliacion
where
	CodBanco = @CodBanco
	and CodTipoMovimientoBancario = @CodTipoMovimientoBancario
order by Orden
GO

-- ------------------------------------------------------------------------------
-- - usp_CriteriosConciliacion_SEL_x_CodBanco_CodTipoMovimientoBancario_Orden ---
-- ------------------------------------------------------------------------------
if exists(select * from sysobjects where name = 'usp_CriteriosConciliacion_SEL_x_CodBanco_CodTipoMovimientoBancario_Orden' and type = 'P')
	drop procedure usp_CriteriosConciliacion_SEL_x_CodBanco_CodTipoMovimientoBancario_Orden
GO
create procedure dbo.usp_CriteriosConciliacion_SEL_x_CodBanco_CodTipoMovimientoBancario_Orden
(
	 @CodBanco int
	,@CodTipoMovimientoBancario int
	,@Orden int
)
as

select
	 CodBanco
	,CodTipoMovimientoBancario
	,Orden
	,CriterioConciliacion
	,Estado
from
	dbo.CriteriosConciliacion
where
	CodBanco = @CodBanco
	and CodTipoMovimientoBancario = @CodTipoMovimientoBancario
	and Orden = @Orden 
order by Orden
GO

-- -----------------------------------
-- - usp_CriteriosConciliacion_INS ---
-- -----------------------------------
if exists(select * from sysobjects where name = 'usp_CriteriosConciliacion_INS' and type = 'P')
	drop procedure usp_CriteriosConciliacion_INS
GO
create procedure dbo.usp_CriteriosConciliacion_INS
(
	 @CodBanco int
	,@CodTipoMovimientoBancario int
	,@Orden int OUTPUT
	,@CriterioConciliacion varchar(200)
	,@Estado char(1)
)
as
select @Orden = 1
select @Orden = isnull(max(Orden),0) + 1 
from dbo.CriteriosConciliacion
group by CodBanco, CodTipoMovimientoBancario
having
	 CodBanco = @CodBanco
	and CodTipoMovimientoBancario = @CodTipoMovimientoBancario

insert into dbo.CriteriosConciliacion
(
	 CodBanco
	,CodTipoMovimientoBancario
	,Orden
	,CriterioConciliacion
	,Estado
)
values
(
	 @CodBanco
	,@CodTipoMovimientoBancario
	,@Orden
	,@CriterioConciliacion
	,@Estado
)
GO

-- -----------------------------------
-- - usp_CriteriosConciliacion_UPD ---
-- -----------------------------------
if exists(select * from sysobjects where name = 'usp_CriteriosConciliacion_UPD' and type = 'P')
	drop procedure usp_CriteriosConciliacion_UPD
GO
create procedure dbo.usp_CriteriosConciliacion_UPD
(
	 @CodBanco int
	,@CodTipoMovimientoBancario int
	,@Orden int
	,@CriterioConciliacion varchar(200)
	,@Estado char(1)
)
as

update dbo.CriteriosConciliacion
set
	 CriterioConciliacion = @CriterioConciliacion
	,Estado = @Estado
where 
	 CodBanco = @CodBanco
	and CodTipoMovimientoBancario = @CodTipoMovimientoBancario
	and Orden = @Orden
GO

-- -----------------------------------
-- - usp_CriteriosConciliacion_DEL ---
-- -----------------------------------
if exists(select * from sysobjects where name = 'usp_CriteriosConciliacion_DEL' and type = 'P')
	drop procedure usp_CriteriosConciliacion_DEL
GO
create procedure dbo.usp_CriteriosConciliacion_DEL
(
	 @CodBanco int
	,@CodTipoMovimientoBancario int
	,@Orden int
)
as

delete dbo.CriteriosConciliacion
where 
	 CodBanco = @CodBanco
	and CodTipoMovimientoBancario = @CodTipoMovimientoBancario
	and Orden = @Orden
-- reordena la columna "orden"
declare @variable int
set @variable = 0
update
CriteriosConciliacion 
SET @variable = orden = @variable + 1 
where CodBanco = @CodBanco and CodTipoMovimientoBancario = @CodTipoMovimientoBancario

GO

-- -------------------------------------
-- - usp_CriteriosConciliacion_Subir ---
-- -------------------------------------
if exists(select * from sysobjects where name = 'usp_CriteriosConciliacion_Subir' and type = 'P')
	drop procedure usp_CriteriosConciliacion_Subir
GO
create procedure dbo.usp_CriteriosConciliacion_Subir
(
	 @CodBanco int
	,@CodTipoMovimientoBancario int
	,@Orden int
	,@OrdenNuevo int OUTPUT
)
as
declare @maximo as int
set @OrdenNuevo = 0
if @Orden <= 1
	begin
		set @OrdenNuevo = 1
		return
	end
select @maximo = max(Orden) from dbo.CriteriosConciliacion where CodBanco = @CodBanco and CodTipoMovimientoBancario = @CodTipoMovimientoBancario

update dbo.CriteriosConciliacion 
set orden = @maximo + 1
where CodBanco = @CodBanco and CodTipoMovimientoBancario = @CodTipoMovimientoBancario and Orden = @Orden

update dbo.CriteriosConciliacion 
set orden = @Orden
where CodBanco = @CodBanco and CodTipoMovimientoBancario = @CodTipoMovimientoBancario and Orden = @Orden - 1

update dbo.CriteriosConciliacion 
set orden = @Orden - 1
where CodBanco = @CodBanco and CodTipoMovimientoBancario = @CodTipoMovimientoBancario and Orden = @maximo + 1

set @OrdenNuevo = @Orden - 1

GO

-- -------------------------------------
-- - usp_CriteriosConciliacion_Bajar ---
-- -------------------------------------
if exists(select * from sysobjects where name = 'usp_CriteriosConciliacion_Bajar' and type = 'P')
	drop procedure usp_CriteriosConciliacion_Bajar
GO
create procedure dbo.usp_CriteriosConciliacion_Bajar
(
	 @CodBanco int
	,@CodTipoMovimientoBancario int
	,@Orden int
	,@OrdenNuevo int OUTPUT
)
as
declare @maximo as int
set @OrdenNuevo = 0
select @maximo = max(Orden) from dbo.CriteriosConciliacion where CodBanco = @CodBanco and CodTipoMovimientoBancario = @CodTipoMovimientoBancario
if @Orden >= @maximo
	begin 
		set @OrdenNuevo = @maximo
		return
	end

update dbo.CriteriosConciliacion 
set orden = @maximo + 1
where CodBanco = @CodBanco and CodTipoMovimientoBancario = @CodTipoMovimientoBancario and Orden = @Orden

update dbo.CriteriosConciliacion 
set orden = @Orden
where CodBanco = @CodBanco and CodTipoMovimientoBancario = @CodTipoMovimientoBancario and Orden = @Orden + 1

update dbo.CriteriosConciliacion 
set orden = @Orden + 1
where CodBanco = @CodBanco and CodTipoMovimientoBancario = @CodTipoMovimientoBancario and Orden = @maximo + 1

set @OrdenNuevo = @Orden + 1

GO

-- -------------------------
-- - usp_Estado_SEL ---
-- -------------------------
if exists(select * from sysobjects where name = 'usp_Estado_SEL' and type = 'P')
	drop procedure usp_Estado_SEL
GO
create procedure dbo.usp_Estado_SEL
as

select
	 Estado
	,EstadoDescripcion
from
	Estado
GO

-- -----------------------------
-- - usp_Estado_SEL_x_Estado ---
-- -----------------------------
if exists(select * from sysobjects where name = 'usp_Estado_SEL_x_Estado' and type = 'P')
	drop procedure usp_Estado_SEL_x_Estado
GO
create procedure dbo.usp_Estado_SEL_x_Estado 
(
	@Estado varchar(50)
)
as

select
	 Estado
	,EstadoDescripcion
from
	Estado
where
	Estado = @Estado
GO

-- ------------------------------
-- - usp_Columnas_SEL_x_Tabla ---
-- ------------------------------
if exists(select * from sysobjects where name = 'usp_Columnas_SEL_x_Tabla' and type = 'P')
	drop procedure usp_Columnas_SEL_x_Tabla
GO
create procedure dbo.usp_Columnas_SEL_x_Tabla 
(
	@tabla varchar(255)
)
as
select 
	 syscolumns.name Nombre
	,systypes.name Tipo
from sysobjects 
left outer join syscolumns on sysobjects.id = syscolumns.id
left outer join systypes on syscolumns.xtype = systypes.xtype
where sysobjects.name = @tabla
GO

